package high.concurrent.pay.service;

import high.concurrent.vo.PayInfoVO;

import java.util.List;

/**
 * 支付回调操作(根据不同的支付业务， 比如网费的，订餐的，零食的。按这种分类)
 */
public interface PayCallbackService {

    /**
     * 向各相关服务发送消息， 消息标识待发送
     * @param payInfoVO
     * @return
     */
    List<String> toBeSend(PayInfoVO payInfoVO);

    /**
     * 修改本地事务
     * @param payInfoVO
     */
    void updateLocalTransaction(PayInfoVO payInfoVO);

    /**
     * 向各服务发送消息， 消息标识为已发送
     * @param messageIds
     */
    void hasBeenSent(List<String> messageIds);
}
